typedef struct Context {
    int stack_offset;
    Environment *env;
    int label_count;
} Context;
/*
typedef 是给类型取别名，要理解typedef到底要做什么，就去掉typedef
看看后面的变量是什么
typedef 与 #define 功能相似, 
1. #define： 只是傻傻的替换，预编译后不对词义进行分析，且语句结束不带分号
2. typedef： 但如果要一次性定义多个指针变量，记得用 typedef
typedef 在语法上是存储类型的关键字， 变量只能被一种关键字修饰
typedef 的重要意义在于： 1，简化类型 2，创建平台无关类型；
*/
void new_scope(Context *ctx);

Context *new_context();

void context_free(Context *ctx);